package com.juzhi.dvrapp.utils;

/**
 * Created by YangHu on 2017/9/11.
 */

public class Urls {




    /**
     * 本地测试地址与端口：192.168.3.239:8081
     * 本地服务器测试地址与端口：192.168.3.150:8081
     * 印度服务器测试地址与端口：110.172.52.188:8081
     * Amazon服务器测试地址与端口：18.221.84.245:8081
     */

    public static final String HTTP_LOCAL = "192.168.1.112";

    public static final String HTTP_INDIA = "110.172.52.188";

    public static final String HTTP_AMAZON_MEDIA = "34.237.182.236";

    public static final String HTTP_AMAZON_DEFAULT = "34.228.57.176";

    public static final String CAMERA_PORT = "8081";

    public static final String CMS_PORT = "10000";

    public static final String DARWIN_QUERY_PORT = "10088";

    public static final String DARWIN_GET_PORT = "10085";

    public static final String CAMERA_SERVER = "http://" + HTTP_AMAZON_DEFAULT + ":" + CAMERA_PORT;

    public static final String CMS_SERVER = "http://" + HTTP_AMAZON_MEDIA + ":" + CMS_PORT;

    public static final String DARWIN_QUERY_SERVER = "http://" + HTTP_AMAZON_MEDIA + ":" + DARWIN_QUERY_PORT;


    /**
     * 校验输入的设备ssid与用户名和密码是否一致(登录)
     *      方法名称：/sigmawit/user/validusername
     *      请求类型：POST
     *      参数：deviceId(String) :设备的ssid标识
     *              username(String)：用户名
     *              password(String)：用户密码
     *              appId(String)：app的唯一标识
     *                  返回结果：校验通过返回完整的当前校验的用户信息（DeviceUser）实体
     */

    public static final String URL_DEVICELOGIN = CAMERA_SERVER + "/sigmawit/user/valid";

    /**
     *  强制登录
     * 方法名称：/sigmawit/user/offline
     *      请求类型：POST
     *          参数：deviceId(String) :设备的ssid标识
     *              username(String)：用户名
     *                  appId(String)：appId
     *                          返回结果：返回status为200时，result值为登录的用户类型
     */
    public static final String URL_DEVICECONSTRAINTLOGIN = CAMERA_SERVER + "/sigmawit/user/offline";


    /**
     * 用户密码重置
     *      方法名称：/sigmawit/user/resetself
     *          请求类型：POST
     *                  参数：id：当前用户id
     *          deviceId(String) :设备的ssid标识
     *           username(String)：用户名
     *           password(String)：新密码
     */
    public static final String URL_DEVICEUSERRESETSELF = CAMERA_SERVER + "/sigmawit/user/resetself";


    /**
     * Android系统app消息推送服务注册
     *      方法名称：/sigmawit/register/android
     *          请求类型：POST
     *              参数：appId：app标识
     *           registrationId：app向推送服务注册商获取的注册id
     */
    public static final String URL_REGISTER_GCM = CAMERA_SERVER + "/sigmawit/register/android";

    /**
     * 获取设备用户邮箱
     *      方法名称：/sigmawit/user/getemail
     *          请求类型：GET
     *              参数：id：设备用户id
     */
    public static final String URL_GETEMAIL = CAMERA_SERVER + "/sigmawit/user/getemail";

    /**
     * 设置设备用户邮箱
     *      方法名称：/sigmawit/user/setemail
     *          请求类型：POST
     *              参数：id：设备用户id
     *                 email：设备用户邮箱
     */
    public static final String URL_SETEMAIL = CAMERA_SERVER + "/sigmawit/user/setemail";

    /**
     * 添加设备用户
     *      方法名称：/sigmawit/user/insert
     *          请求类型：POST
     *              参数：param：实体DeviceUser对应的json数据
     */
    public static final String URL_INSERTUSER = CAMERA_SERVER + "/sigmawit/user/insert";

    /**
     * 获取设备用户列表
     *      方法名称：/sigmawit/user/list
     *          请求类型：GET
     *              参数：deviceId(String) :设备的ssid标识
     *                              返回结果：List<DeviceUser>
     */
    public static final String URL_GETUSERS = CAMERA_SERVER + "/sigmawit/user/list";

    /**
     * 删除设备用户信息
     *      方法名称：/sigmawit/user/delete
     *          请求类型：POST
     *              参数：id(String)
     */
    public static final String URL_DELUSER = CAMERA_SERVER + "/sigmawit/user/delete";

    /****************************EsayCamera 接口*******************************************************/

    /**
     * 请求设备开始推流
     *
     * 请求 RESTful
     * http://[ip]:[port]/api/v1/startdevicestream?device=001002000001&channel=1&reserve=1
     *
     * 2)响应：MSG_SC_START_STREAM_ACK
         “EasyDarwin”: {
         “Header”: {
         “Version”: “1.0”,
         “MessageType”: “MSG_SC_START_STREAM_ACK”,
         “ErrorNum”: “200”,
         “CSeq”: “6”,
         “ErrorString”: “Success OK”
         }
         “Body”: {
         “Serial”: “001002000001”,
         “Channel”: “1”,
         “Service”: “IP=119.199.155.127;Port=10088;Type=EasyDarwin”,
         “Protocol”: “RTSP”,
         “Reserve”: “1”
         }
         }
         }
     返回成功后，使用返回的Service 字段提取出EasyDarwin 的IP 和端口，通过 IP 和端口进行调用取流,
     如：http://119.199.155.127:10088/api/v1/getdevicestream?device=00100 2000001&channel=1&protocol=hls。

     GET请求
     device  ： 设备SSID
     channel ： 通道号(默认1)
     reserve ： 1  预留不同的码流 0流畅  1标清 2高清  3超清
     */

    public static final String URL_CMS_START_STREAM  = CMS_SERVER + "/api/v1/startdevicestream";

    /**
     * EasyClient向EasyDarwin请求设备的码流
     *
     1)请求：RESTful
     http://[ip]:[port]/api/v1/getdevicestream?device=001002000001&channel=1&protocol=rtmp&reserve=1
     2)响应：MSG_SC_GET_STREAM_ACK
     “EasyDarwin”: {
     “Header”: {
     “Version”: “1.0”,
     “MessageType”: “MSG_SC_GET_STREAM_ACK”,
     “ErrorNum”: “200”,
     “ErrorString”: “Success OK”
     }
     “Body”: {
     “URL”: “rtmp://121.40.50.44:10935/hls/xxxxxxxxx-1”,
     “Protocol”: “RTMP”
     }
     }
     }
     返回成功后,使用URL 的地址进行播放。protocol 为 RTMP/HLS，返回对应的播放地址。

     GET请求
     device  ： 设备SSID
     channel ： 通道号(默认1)
     protocol ： 拉流地址  rtmp/hls
     reserve ： 1
     */

    public static final String URL_CMS_GET_STREAM = DARWIN_QUERY_SERVER + "/api/v1/getdevicestream";



    /**
     * 设备在线状态
     *
     * 1）请求：RESTful
     http://[ip]:[port]/api/v1/getdeviceinfo?device=[Serial]
     格式说明：Serial：设备序列号
     2) 响应：MSG_SC_DEVICE_INFO_ACK
     “EasyDarwin”: {
     “Header”: {
     “Version”: “1.0”,
     “MessageType”: “MSG_SC_DEVICE_INFO_ACK”,
     “ErrorNum”: “200”,
     “CSeq”: “5”,
     Copyright© 2012-2016 EasyDarwin.org ~ 12 ~
     EasyDarwin 开源流媒体平台交互协议
     “ErrorString”: “Success OK”
     },
     “Body”: {
     “Serial”: “001002000001”,
     “ChannelCount”: “16”,
     “Channels”: [
     {
     “Channel”: “1”,
     “Name”: “Camera01”,
     “Status”: “online/offline”
     },
     {
     “Channel”: “02”,
     “Name”: “Camera02”,
     “Status”: “online/offline”
     },
     „ „
     {
     “Channel”: “16”,
     “Name”: “Camera16”,
     “Status”: “online/offline”
     }
     ]
     }
     }
     }
     */

    public static final String URL_CMS_GET_DEVICE_INFO = CMS_SERVER + "/api/v1/getdeviceinfo";

    public static final String URL_CMS_GET_DEVICE_THUMB = DARWIN_QUERY_SERVER + "/snap/";

}
